Protocol Buffers

更新时间:2024-02-27 18:13

Protocol Buffers,是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。

作用

它不依赖于语言和平台并且可扩展性极强。现阶段官方支持C++JAVAPython、Objective C、C#

、Ruby、PHP、JavaScript八种编程语言,还可以找到大量的几乎涵盖所有语言的第三方拓展包。

通过它,你可以定义你的数据的结构,并生成基于各种语言的代码。这些你定义的数据流可以轻松地在传递并不破坏你已有的程序。并且你也可以更新这些数据而现有的程序也不会受到任何的影响。

Protocol Buffers经常被简称为protobuf。

样例

通过定义一些数据和结构放在一个 .proto 文件之中。每一个protocol buffer 信息都是一小段结构,包含了一些名字。下面是一个.proto 文件内容的样例。

[pre]message Point {

required int32 x = 1;

required int32 y = 2;

optional string label = 3;

}

message Line {

required Point start = 1;

required Point end = 2;

optional string label = 3;

}

message Polyline {

repeated Point point = 1;

optional string label = 2;

}

优点

为什么不使用XML?

同XML相比,Protocol buffers在序列化结构化数据方面有许多优点:

1. 更简单

2. 数据描述文件只需原来的1/10至1/3

3. 解析速度是原来的20倍至100倍

4. 减少了二义性

5. 生成了更容易在编程中使用的数据访问类

6、支持多种编程语言

举例

我们可以举出例子对这两者进行比较。

XML

John Doe

jdoe@

Protocol buffers

应用

Protocol Buffers在谷歌被广泛用于各种结构化信息存储和交换。Protocol Buffers作为一个自定义的远程过程调用RPC)系统,用于在谷歌几乎所有的设备间的通信。

google在2008年7月7号将其作为开源项目对外公布。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}